package com.paradise.ytj.activity;

import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import com.paradise.ytj.R;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class DeveloperActivity extends AppCompatActivity {

    private TextView tvLog;
    private TextView tvInfo;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_developer);
        tvLog = (TextView) findViewById(R.id.tv_log);
        tvInfo = (TextView) findViewById(R.id.tv_info);
        tvInfo.append("\n系统版本：" + Build.VERSION.RELEASE +
                "\nAPI版本：" + Build.VERSION.SDK_INT +
                "\n生成厂商：" + Build.MANUFACTURER +
                "\n机型：" + Build.MODEL +
                "\n软件版本：" + getVersionName() +
                "\n软件API：" + getVersionCode());
        try {
            traverseFolder2(getGlobalPath());
        } catch (Exception e) {

        }
    }

    public void traverseFolder2(String path) {

        File file = new File(path);
        if (file.exists()) {
            File[] files = file.listFiles();
            if (files.length == 0) {
                tvLog.append("\n暂时没有日志信息");
                return;
            } else {
                for (File file2 : files) {
//                    if (file2.isDirectory()) {
//                        System.out.println("文件夹:" + file2.getAbsolutePath());
//                        traverseFolder2(file2.getAbsolutePath());
//                    } else {
//                        System.out.println("文件:" + file2.getAbsolutePath());
//                    }
                    tvLog.append("\n" + txt2String(file2) +
                            "\n******************************************************************************************************************************************************************");
                }
            }
        } else {
            tvLog.append("\n暂时没有日志信息");
        }
    }

    public String getGlobalPath() {
        return Environment.getExternalStorageDirectory().getAbsolutePath() + File.separator + "paradise/crash" + File.separator;
    }

    public String txt2String(File file) {
        StringBuilder result = new StringBuilder();
        try {
            BufferedReader br = new BufferedReader(new FileReader(file));//构造一个BufferedReader类来读取文件
            String s = null;
            while ((s = br.readLine()) != null) {//使用readLine方法，一次读一行
                result.append(System.lineSeparator() + s);
            }
            br.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result.toString();
    }


    /**
     * 返回版本号
     *
     * @return 非0 则代表获取成功
     */
    private int getVersionCode() {
        //1,包管理者对象packageManager
        PackageManager pm = getPackageManager();
        //2,从包的管理者对象中,获取指定包名的基本信息(版本名称,版本号),传0代表获取基本信息
        try {
            PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);
            //3,获取版本名称
            return packageInfo.versionCode;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return 0;
    }

    /**
     * 返回版本号
     *
     * @return 非0 则代表获取成功
     */
    private String getVersionName() {
        //1,包管理者对象packageManager
        PackageManager pm = getPackageManager();
        //2,从包的管理者对象中,获取指定包名的基本信息(版本名称,版本号),传0代表获取基本信息
        try {
            PackageInfo packageInfo = pm.getPackageInfo(getPackageName(), 0);
            //3,获取版本名称
            return packageInfo.versionName;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
}
